﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//5.定义常量，这种是安全的；
#define LVL 100

//main71&72&73&74：指针修改const修饰的常量和int*类型和指针变量
int main71()
{
	//6.通过指针修改const修饰的常量；
	//1.const定义常量，这种方式不安全，可以通过指针修改常量的值；
	const int a = 10;
	printf("2.未使用指针修改前常量a的值：%d\n", a);//10
	int* p = &a;
	*p = 100;
	printf("3.使用指针修改后常量a的值：%d\n", a);//100
	printf("4.输出指针p指向的内存空间的值：%d\n", *p);//100

	system("pause");
	return EXIT_SUCCESS;
}
int main72(void)
{
	int a = 10;
	//8.如果const修饰int*类型，则不能改变指针变量指向的内存空间的值，但可以改变指针指向的地址；
	const int* p;
	p = &a;
	//*p = 100;
	int b = 100;
	//9.改变指针变量p的值，即改变指针的地址；
	p = &b;
	printf("7.输出const修饰的指针p指向的内存空间的值：%d\n", *p);//100 

	return 0;
}
int main73(void)
{
	int a = 10;
	//11.const修饰指针变量p，能改变指针变量指向内存空间的值，但不能改变指针变量p的地址；
	int* const p = &a;
	*p = 100;

	int b = 20;
	//p = &b;
	printf("10.指针变量p指向的内存空间的值：%d\n", *p);//100
	return 0;
}
int main74(void)
{
	int a = 10;
	//12.const修饰指针类型int*，也修饰指针变量p，则不能改变指针变量指向的内存空间的值，也不能修改指针变量的地址；
	const int* const p = &a;
	int b = 20;
	//p = &b;
	//*p = 100;
}